In current graphics processing systems, the number and processing speed of memory clients have increased enough to make memory access latency a barrier to achieving high performance. In some instances, various memory clients share a common memory, and each memory client issues requests for data stored in the common memory based on individual memory access requirements. Requests from these memory clients are typically serialized through a common interface. As a result, requests are sometimes queued up for servicing prior to a critical request. In some instances, a non-critical request subsequently becomes critical but is queued up for servicing behind non-critical requests. A critical request typically refers to a request that should be serviced promptly to prevent underflow of an output data stream or overflow of an input data stream, which underflow or overflow can sometimes lead to screen corruption. However, a critical request issued behind non-critical requests may have to wait for all those non-critical requests to be serviced first, thus leading to increased service time for the critical request and potential screen corruption.
It is against this background that a need arose to develop the apparatus, system, and method described herein.